1. Field
Embodiments of the invention relate to client and database problem determination and monitoring.
2. Description of the Related Art
Databases are computerized information storage and retrieval systems. Relational databases are organized into tables that consist of rows and columns of data. The rows may be called tuples or records or rows. A database typically has many tables, and each table typically has multiple rows and multiple columns.
Relational DataBase Management System (RDBMS) software may use a Structured Query Language (SQL) interface. The SQL interface has evolved into a standard language for RDBMS software and has been adopted as such by both the American National Standards Institute (ANSI) and the International Standards Organization (ISO).
A query (e.g., a SQL statement) may be described as a request for information from a database based on specific conditions. A query typically includes one or more predicates. A predicate may be described as an element of a search condition that expresses or implies a comparison operation (e.g., A=3).
Traditional monitoring and problem determination tools have focused on particular areas of expertise. For example, a database monitoring tool reports details of operations of a database, including identifying queries that the database is processing on behalf of client applications. As another example, a client application profiling tool reports details of a client application's run, including identifying queries that the client application has issued.
Applications and databases interact with each other. For example, applications that persist data often use SQL statements to access and manipulate data in the database. Most of the client applications today are used in running a business. When the monitoring and problem determination tools stop gathering information at a time at which a call crosses between the client application and the database, the monitoring and problem determination tools present one side of the data. For example, Database Administrators (DBAs), who use database monitoring tools, cannot tell which application the SQL statements are coming from. Without this information, the DBAs are unable to determine the contacts when the SQL statements encounter problems in the database. Contacts may be described as contact persons for an application should the application misbehave in the production environment. For example, an application developer who wrote the application may be a contact.
Similarly, application developers cannot tune client applications based on data gathered by the database monitoring tools because they do not have insight into the performance of client applications with the database operation taken into account when the call crosses between the client application and the database. That is, once a database call is made, what happens during the database call is usually unknown to the application developer.
Moreover, the problem extends beyond database monitoring and application tuning Workload management is a very powerful tool in the hands of a system administrator. A DBA may be described as a specialized system administrator. In a small business, the DBA may be the system administrator, while, in a larger organization, there may be a DBA and a system administrator. With workload management, a system administrator may allocate more processor time to client applications that need additional time. The lack of identification of which client application issued which queries comes into play again in this scenario. Just by looking at the database activities, the system administrator cannot deduce the client application that is generating the workload, and, without this information, there is no means to identify the client application that should be given priority for running.
With the proliferation of persistence frameworks, such as JAVA® Persistence API (JPA) framework, that isolate the client application from the underlying database, the distance between the client application and the underlying database increases (JAVA is a trademark of Sun Microsystems in the United States, other countries, or both). Thus, there is need for improved client side end to end problem determination and monitoring.